package com.ys.day27.p4线程池与并发;

import java.util.concurrent.*;

/**
 * 描述:
 * 场景：使用Callable完成一个任务，判断3~100之间的奇偶性
 *
 * @author CodeYang
 * @version 2021/1/6 21:10
 */
public class P2CallableTest02 {

    public static void main(String[] args) {
      // 创建线程池
        ExecutorService pool = Executors.newFixedThreadPool(2);
        // void execute(Runnable command); 是Executor接口唯一的方法 最后所有的线程池都实现了该方法去调用

        for (int i = 1000; i <=2021 ; i++) {
            // 提交给线程池,并且执行 这个任务
            Future<Boolean> submit = pool.submit(new MyJob(i));
            try {
                System.out.println(i+"年是不是闰年:"+submit.get());
            } catch (InterruptedException | ExecutionException e) {
                e.printStackTrace();
            }
        }


        pool.shutdown();

    }
}

class MyJob implements Callable<Boolean>{

    private int year =0;

    public MyJob() {
    }

    public MyJob(int year) {
        this.year = year;
    }

    @Override
    public Boolean call() throws Exception {

        return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
    }
}
